// 业务逻辑处理
const data = require('./data.json');
const fs = require('fs');
const path = require('path');

// // 把内存中的数据写入到文件方法
let writeDataToFile = (res) => {
    fs.writeFile(path.join(__dirname, 'data.json'),JSON.stringify(data,null,4), (err) => {
      if (err) {
        res.send('Server error');
      }
      res.redirect('/')
    })
}

// 获取到最大的id
let maxBookCode = () => {
  let arr = [];
  data.forEach((item) => {
    if (item.id == null) {
      // console.log(1)
      item.id = '0';
    }
    arr.push(item.id);
  })
  return Math.max.apply(null, arr);
}


// 渲染主页面
exports.showIndex = (req, res) => {
  res.render('index', {
    list : data
  })
}

// 渲染添加图书页面
exports.toAddBook = (req, res) => {
  res.render('addBook', {})
}

// 添加图书
exports.addBook = (req, res) => {
  let info = req.body;
  console.log(info)
  let book = {};
  for (let key in info) {
    book[key] = info[key];
  }
  book.id = maxBookCode() + 1;
  data.push(book);
  // 把内存中的数据写入到文件
  writeDataToFile(res);
}
// 跳转到编辑图书页面
exports.toEditBook = (req, res) => {
  let id = req.query.id;
  console.log(id)
  let book = {};
  data.forEach((item) => {
    if (id == item.id) {
      book = item;
      return;
    }
  })
  console.log(book)
  res.render('editBook', book); 
}

exports.editBook = (req, res) => {
  let info = req.body;
  data.forEach((item) => {
    if (info.id == item.id) {
      for (let key in info) {
        item[key] = info[key];
      }
      return;
    }
  })
  // 把内存中的数据写入到文件
  writeDataToFile(res);
}

exports.deleteBook = (req, res) => {
  let id = req.query.id;
  data.forEach((item, index) => {
    if (id == item.id) {
      data.splice(index, 1);
    }
    return;
  })
  // 把内存中的数据写入到文件
  writeDataToFile(res);
}